#include "CRL_ShaderPassAtomic.h"

CB_SUBNAMESPACE_START(RenderLib)

CParameterAtomicPtr IShaderAtomic::GetParameter(const char* _pName)
{
	IdType ParameterId = m_ParameterMap.RegisterId(_pName);
	
	if (ParameterId == InvalidId)
		return CParameterAtomicPtr(NULL);
	
	return m_Parameters[ParameterId];
}

// ---------------------------------------------------------------------------------------------------------------------

void IShaderAtomic::RegisterParameter(IParameterAtomic* _pParameter, const char* _pName)
{
	IdType ParameterId = m_ParameterMap.RegisterId(_pName);
	
	if (ParameterId >= (IdType)m_Parameters.Size())
	{
		CParameterAtomicPtr NewParameter(_pParameter);
		m_Parameters.PushBack(NewParameter);
	}
}

CB_SUBNAMESPACE_END